// 控制应用程序生命周期和创建本地浏览器窗口的模块
const { app, BrowserWindow, Notification } = require('electron');
const path = require('path');

const NOTIFICATION_TITLE = 'Basic Notification';
const NOTIFICATION_BODY = 'Notification from the Main process';

// 创建浏览器窗口
function createWindow() {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js')
    }
  });
  // 加载应用程序的index.html
  win.loadFile(path.join(__dirname, 'index.html'));
  // 打开开发者工具
  win.webContents.openDevTools();
}

// 当 Electron 准备好后执行
// 部分 API 在 ready 事件触发后才能使用
app.whenReady().then(createWindow).then(showNotification);

// 当所有窗口关闭时退出，macOS 除外
app.on('window-all-closed', function () {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

app.on('activate', function () {
  // 在macOS上，通常是在应用程序中重新创建一个窗口
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow();
  }
});

function showNotification() {
  new Notification({
    title: NOTIFICATION_TITLE,
    body: NOTIFICATION_BODY
  }).show();
}

// 在这个文件中，你可以包含应用程序的其余部分代码
// 也可以拆分成几个文件，然后用 require 导入
